package com.dzwww.recommend.rule.service.base;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dzwww.recommend.rule.common.api.ApiException;

import java.util.List;

/**
 *  基础Service
 * <p>
 *
 * @param <T> Bean
 *            <p>
 * @author lixin
 * @date 2018/4/2 下午7:51
 *   @version 1.0
 */
public interface BaseService<T> extends IService<T> {

    /**
     * 查找
     *
     * @param page   分页
     * @param paramT 条件
     * @return Page<Auth>
     */
    IPage<T> listBy(IPage<T> page, T paramT);

    /**
     * 查找
     *
     * @param paramT 条件
     * @return Page<Api>
     */
    List<T> listBy(T paramT);

    /**
     * 查找一个
     *
     * @param paramT 条件
     * @return Auth
     */
    T getBy(T paramT);

    /**
     * 计数
     *
     * @param paramT 条件
     * @return int
     */
    int countBy(T paramT);

    /**
     * 添加
     *
     * @param paramT paramT
     * @return boolean
     * @throws ApiException ApiException
     */
    boolean add(T paramT) throws ApiException;

    /**
     * 根据ID删除
     *
     * @param id id
     * @return boolean
     * @throws ApiException ApiException
     */
    boolean delById(Long id) throws ApiException;

    /**
     * 删除
     *
     * @param paramT 条件
     * @return boolean
     */
    boolean delBy(T paramT);

    /**
     * 按ID修改
     *
     * @param paramT paramT
     * @return boolean
     * @throws ApiException ApiException
     */
    boolean modifyById(T paramT) throws ApiException;

}
